The following abbreviations are herewith defined, at least some of which are referred to within the following description of the state-of-the-art and the present invention.
CPU Central Processing Unit
IEEE Institute of Electrical and Electronics Engineers
LAN Local Area Network
L2 Layer 2 (a reference to the OSI reference model for networks)
MAC Media Access Control
MAN Metropolitan Area Network
OSI Open Systems Interconnection (initiative)
WAN Wide Area Network
Data communication networks allow many different computers, and similar devices, to communicate with each other to share data and computing resources. Such networks are regularly implemented using at least one, but usually many interconnected nodes, for example switches or routers. Individual users with personal computers, for example, may connect to a network for the purpose of communicating with other users, or for contacting servers that may be associated with a service provider. Businesses and other large institutions may use computer networks to sell merchandise or services, or simply to share information. Frequently, smaller local networks such as LANs communicate with other LANs via larger networks such as MANs and WANs.
The nodes of a network are usually interconnected by physical media, such as a wires or optical fiber cables. Data transmitted from one computer to another passes from node to node through the network until it reaches its destination. Prior to transmission, the data are divided into discrete segments called packets or frames, each carrying information identifying the source of the data and the intended destination. The communication path taken by each of the data packets through the network may vary, and some packets may be lost and have to be resent. For this reason, packets also include sequence identifiers so that the data can be reassembled at the destination into its original or some other desirable form. Packets usually carry other identifying information as well, some examples of which will be included in the description below. The portion of the packet carrying transmission information is often called a header.
One reason that data packets may take different routes through a network is traffic-related; sometimes certain portions of the network become congested and so some of the data traffic will be routed on an alternate path. Another reason is the network nodes, or the communication links between them, may occasionally fail in some way. This failure may be intentional, such as taking a node out for service, or unintentional as when a component simply breaks down.
In order to be able to transmit data from and to a variety of sources, networks typically adopt certain uniform rules dealing with various aspects of the transmission process and how the various nodes should interact with each other. These rules are often developed in a collaborative environment and promulgated by standard-setting bodies. For example, IEEE 802.3 and its many related protocols describe a system of network communication known as Ethernet. Ethernet has become a popular protocol for many implementations, large and small.
One strategy that attempts to mitigate the congestion and link failure problems mentioned above is referred to as link aggregation, which is described in IEEE 802.3ad and related protocols. In link aggregation, two or more communication ports on a network node, and the physical links communicating with them, are aggregated into a link aggregation group (LAG). The multiple ports in a LAG become a single virtual port. Data is sent and received on the virtual port as if it were a single port, except that traffic is equitably distributed onto each of the actual physical ports. As should be apparent, this increases the bandwidth of the link, and in the event one physical link fails, the one or more remaining can carry the data traffic (albeit at a reduced bandwidth) with no need to reconfigure the network.
Link aggregation can simply take the form of a two network nodes connected to each other by multiple physical links. This provides greater bandwidth and redundancy between the two, but of course if one of the nodes fails, none of its ports will be active. Another form of the link aggregation strategy is shown in FIG. 1. Note that the examples presented here in FIGS. 1 and 2, and the accompanying description, are technologies known to the inventors and presented here as background to describing the present invention without making any statement or express or implied admission relating to their applicability as prior art with respect to the present invention.
FIG. 1 is a simplified schematic diagram illustrating a network 100 implementing a link aggregation technique. Network 100 includes five sources referred to as 105, 110, 115, 120, and 125. Note these sources may be computing devices, such a personal computers or servers, or they may be considered to represent any other source of data traffic, such as another portion of a network. Each of these sources is effectively connected to each of the others by three interconnected nodes, referred to in FIG. 1 as 130, 140 and 150. Source 110 and source 115 are in direct communication with node 130; source 120 and source 125 are in direct communication with node 140; and source 105 is in direct communication with node 150. For communication between source 105 and source 110, as one example, inter-node link aggregation may be utilized.
In the example of FIG. 1, LAG 10 is indicated. LAG 10 is a link aggregation that allows node 150 to send and traffic from source 105 to source 110 along two different physical paths. The first path includes link 1 and node 130, and the second path includes link 2 and link 3 and nodes 140 and 130. Similar LAGs may be established for traffic between other sources. As with the simpler form of link aggregation mentioned above, this allows for greater bandwidth and, in the event of a failure along one of the paths, the other may be used exclusively.
One problem with this arrangement, however, arises when each element in the paths between does not know which port to associate with a particular source. For example, if source 105 sends packets destined for source 110 but nodes 130 and 140 do not know which port to use to forward the packets, they will follow the normal procedure of flooding the packets on all ports (except the port on which they were received). A loop could be created in which node 150 receives the packets back, when it may again attempt to flood the packets.
One manner of mitigating this problem is shown in FIG. 2. FIG. 2 is a simplified schematic diagram illustrating network 100 implementing another link aggregation technique. As should be apparent, this configuration is very similar to the configuration of network 100 as depicted in FIG. 1, except that LAG 10 now uses only Link 1 as an active link, while Link 2 is in a stand-by mode (as indicated in FIG. 2 by a broken line). In this configuration, if a failure of Link 1 is detected, LAG 10 automatically begins using Link 2 instead, and typically continues to do so until a need for reconfiguration becomes evident.
It is noted that the network 100 of FIG. 2 is, while Link 1 is active, configured similarly to a network implementing STP, a loop-prevention scheme described in IEEE 802.1D and related protocols. The advantage of using a link aggregation instead in this scenario is that the change from using only Link 1 to using only Link 2 can be executed much more quickly. The disadvantage remains, however, that with only one of the links active, the improved bandwidth normally associated with link aggregation cannot be achieved.
Needed then, is a manner of exploiting both the increased bandwidth and the natural redundancy of link aggregation, especially in the inter-node environment.